package com.example.user.customviewdemo.drawing.paint;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

/**
 * 虽然梦想为了现实暂时会妥协，但终有一天，它将会实现
 * Created by user on 2016/4/26.
 * paint之ColorMatrix滤镜效果
 */
public class ColorMatrixView extends View {

    private Paint paint = new Paint();

    public ColorMatrixView(Context context) {
        super(context);
    }

    public ColorMatrixView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public ColorMatrixView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        /**
         * 滤镜效果原理
         * paint.setColorFilter(new ColorMatrixColorFilter(new ColorMatrix(float[] src)));
         * 所以主要就是ColorMatrix类而构造函数中的src即为五阶颜色矩阵如：{
                                                         R, 0, 0, 0, 0,
                                                         0, G, 0, 0, 0,
                                                         0, 0, B, 0, 0,
                                                         0, 0, 0, A, 0
                                                                        }
         * 可用该矩阵对色彩进行缩放，旋转  R(红色) G(绿色) B(蓝色) A(透明度)系统默认值为1
         * 无论是位移，还是旋转都是对该举证进行操作，android替我们封装了一些方法，可以更方便的让我们操作，
         * 如果做的是很复杂的，就需要自己对该矩阵进行操作了
         *
         * ColorMatrix的构造函数如下 ColorMatrix()
                                     ColorMatrix(float[] src)
                                     ColorMatrix(ColorMatrix src)
         */




        /***********colorMatrix.setSaturation(float sat)——设置饱和度*****************/
        /**
         * 参数float sat：表示把当前色彩饱和度放大的倍数。
         * 取值为0表示完全无色彩，即灰度图像（黑白图像）；
         * 取值为1时，表示色彩不变动；
         * 当取值大于1时，显示色彩过度饱和
         */


    }
}
